package jwr.basic;

public class J11_SungJuk_V4 {

	public static void main(String[] args) {
		//객체지향 기법을 이용해서 성적처리 프로그램 작성
		
		/*J11SungJuk sj= new J11SungJuk();
		sj.name = "조우람";
		sj.eng = 70;
		sj.kor = 80;
		sj.mat = 60; */
		//초기하가 불편 - 생성자를 이용할 것!
		
		J11SungJuk sj = new J11SungJuk("조우람", 70, 80, 60);
		System.out.println(sj.getTotal());
		System.out.println(sj.getAverage());
		System.out.println(sj.getGrade());
		/*System.out.println(sj.name);
		System.out.println(sj.eng);
		System.out.println(sj.kor);
		System.out.println(sj.mat);*/
	} //main

}// class

//성적 데이터 : 이름, 국어, 영어, 수학, 총점, 평균
//성적 메서드 : 총점 구하기, 평균 구하기, 학점 구하기, 결과 출력하기
class J11SungJuk{
	String name;
	int kor, eng,mat, tot;
	double avg;
	char grd;
	public J11SungJuk() {
	}
	public J11SungJuk(String name,int kor,int eng,int mat) {
		this.name = name;
		this.kor = kor;
		this.eng = eng;
		this.mat = mat;
		//this 접두사는 클래스의 멤버변수를 가리킴
	}//사용자 정의 생성자
	//만일, 기본생성자 없이 사용자 정의 생성자만 만든다면??
	
	// 메서드 반환값 유형을 무조건 void로 지정
	/*void getTotal(){
		tot = kor+eng+mat;
		System.out.println(tot);
	}
	void getAverage(){
		avg = (kor+eng+mat)/3;
		System.out.println(avg);
	}
	void getGrade(){
		switch((int)((kor+eng+mat)/3)){
			case 10: case 9: grd = '수';break;
		}
	}*/
	
	// 메서드의 반환 값 유형을 결과값의 종류에 따라 지정
	int getTotal(){
		tot = kor+eng+mat;
		return tot;
	}
	double getAverage(){
		avg = getTotal()/3;
		return avg;
	}
	char getGrade(){
		switch((int)(getAverage()/10)){
		case 10: case 9: grd = '수';break;
		case 8: grd = '우';break;
		case 7: grd = '미';break;
		case 6: grd = '양';break;
		default: grd = '가';
		}
		return grd;
	} 
} // J11SungJuk